由於資料庫的討論及教學的材料非常多,本筆記著重記錄「資料庫為何重要」及「怎樣的學習步驟能幫助新手上路」。
本篇筆記將解決以下問題:
誰適合閱讀:
from ACS Group - Database Application Services to Power Today's Businesses
舉凡每天與各種生活圈互動的社群/聊天軟體、遇到問題使用的搜尋引擎、各種日常所需的線上購物、肚子餓叫的外賣、短程移動時的共享交通工具或叫車服務等,底層的服務邏輯都環繞資料的處理。
「資料」(data)是所有網路應用程式的核心。我們平常使用的各種應用程式、平臺或網路工具,所提供的共同價值,就是收集、整理與分享資料。
——from Alpha Camp's material
from BBVAOpen4U - Four interesting ideas that harness big data
資料協助我們將現實生活中的實體或概念,轉為虛擬、可被定義的資料,例如:
以上分別代表不同的資料,而每一筆資料又以不同的「屬性」及「資料型別」來儲存及處理。
屬性就是資料的細節,以使用者來說,可能就包含帳號、密碼、姓名、連絡信箱等。
不同類型的資料會有不同的型別,例如使用者名稱會是字串(String)、按讚數使用數值(Number)等。
可參考的資料:
書名 | 作者 | 語言 | 頁數 |
---|---|---|---|
"Web Development with Node & Express" | "Ethan Brown" | "english" | 399 |
資料庫管理系統 (Database Management System),通常簡稱資料庫或 DBMS,通常提供實用指令與功能,讓開發者可以儲存、取得與管理資料。
依資料結構設計的不同邏輯,又分為「關聯式資料庫 (Relational Database)」 與「非關聯式資料庫(NoSQL) 」。
然而,知道資料庫怎麼用不是最重要,明白何時使用才是關鍵。理解不同資料庫的特性,有助於我們應用在適合的使用情境。透過兩者的實作經驗,能使我們累積足夠的判斷力,以因情況制宜。
資料庫分兩種,又各自有超多不同的資料庫系統,在學習時到底從哪裡及如何開始呢?
從正在學習的 課程 中,我歸納出三個重點:
為什麼是這三點呢?
我認為資料庫系統運用及資料結構的設計是一門博大精深,且對初學者來說是較為抽象的概念,他的複雜程度可以非常高。所以,循序漸進的學習是重要的。NoSQL 相較於 Relational Database 有較為彈性的資料結構與操作,想要設計關聯式資料也同樣可行。
而後面兩點,呼應前提「何時使用才關鍵」,實作與傳授是最有效能掌握事物特性及原理的方式;而反思實際應用情境,則協助我們舉一反三,提取出可不斷段迭代的原則,並擴充我們腦中的經驗資料庫。當碰到不同的情況時,我們能快速判斷該採用何者、如何運用。
我認為目前的學習步調挺適合的:
原因是這兩個資料庫都提供免費的版本,open source、使用者最多、生態系最完整,也分別為 NoSQL 與 RDBMS 的第一名:
接下來就是透過大量練習及實戰來累積洞察及經驗了!為了讓我們能更專注在資料庫的應用層面,會建議先以 NoSQL 的 ODM(Object Document Mapper)及 RDBMS 的 ORM(Object Relational Mapping)來入門。
它們通常以程式語言裡的「物件」來包裝資料庫的 SQL (structured query language),讓開發者可以直接使用物件導向的方式操作資料庫,同時也增加程式碼的易讀性與維護性。
接下來要實作的 MongoDB 在 Node.js 中我們會使用 Mongoose 這個 ODM 來初始化並操作資料庫。
關於本系列更多內容及導讀,請閱讀作者於 Medium 個人專欄 【無限賽局玩家 Infinite Gamer | Publication – 】 上的文章 《用 JavaScript 打造全端產品的入門學習筆記》系列指南。